/*
 * SimpleJobChooser.cuh
 *
 *  Created on: Dec 17, 2013
 *      Author: jaime
 */

#ifndef SIMPLEJOBCHOOSER_CUH_
#define SIMPLEJOBCHOOSER_CUH_

#include <vector>
#include "JobChooser.cuh"
#include "../SATSolver/SolverTypes.cuh"
using namespace std;

class SimpleJobChooser : public JobChooser {
public:
	SimpleJobChooser(vector <Clause> * formula, int number_of_variables,
			vector<Var> * dead_variables);
	~SimpleJobChooser();
	void evaluate();
	void getJobs(JobsQueue & queue);
	int get_number_of_jobs();
	bool is_evaluated();
private:
	void addJobs(Lit* fixed_lits, int number_fixed_lits, JobsQueue & queue);

private:
	vector<Clause> * formula;
	vector<Var> * dead_vars;
	int number_of_variables;
	vector<Var> chosen_variables;
	int variables_per_job;
	bool evaluated;

};

#endif /* SIMPLEJOBCHOOSER_CUH_ */
